package com.ccmusic.dao;

import java.util.List;

import com.ccmusic.entity.Matching;
import com.ccmusic.entity.Music;
import com.ccmusic.entity.MusicType;

/**
 * MatchingDao接口，对Dao操作的方法规范定义
 * 
 * @author 朱江洲
 *
 */
public interface MatchingDao {

	/**
	 * 新增用户-歌曲匹配
	 * 
	 * @param matching
	 *            用户和歌曲匹配的对象（对应关系：用户id-音乐id（表中的id））
	 * @param return
	 *            添加成功时返回true；添加失败返回false
	 */
	public boolean addMacthing(Matching matching);

	/**
	 * 通过用户id获取对应的所有匹配歌曲
	 * 
	 * @param uid
	 *            用户id
	 * @return 用户收藏（与用户id匹配）的所有歌曲id集合
	 */
	public List<Matching> getMatchingsByUid(String uid);
	/**
	 * 用户登录后获取自己的歌单
	 * @param id
	 * @return 根据用户id返回所有匹配的Music的实体类对象的集合
	 * List<Music>
	 */
	public List<MusicType> getMusicCollectionByUid(String uid);

	/**
	 * 删除用户所匹配的特定歌曲
	 * 
	 * @param matching
	 *            用户与该歌曲匹配关系对象
	 * @return 删除成功时返回true；删除失败时返回false
	 */
	public boolean removeMatching(Matching matching);
	
	/**
	 * 根据音乐id删除用户所匹配的特定歌曲
	 * 
	 * @param mid
	 *            音乐id
	 * @return 删除成功时返回true；删除失败时返回false
	 */
	public boolean removeMatchingByMid(String mid);
	
	/**
	 * 添加匹配关系（收藏）
	 * @param uid	用户id
	 * @param mid	音乐id
	 * @return	添加成功返回true；添加失败返回false
	 */
	public boolean add(int uid, int mid);
	
	/**
	 * 查询每首音乐与用户的收藏关系
	 * @param uid
	 * @param mid
	 * @return
	 */
	public boolean getMatching(int uid,int mid);
}
